package com.apimanage.common.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * 日期工具类
 *
 * @author API管理平台
 */
public class DateUtils {
    
    public static final String DATE_FORMAT = "yyyy-MM-dd";
    public static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String TIME_FORMAT = "HH:mm:ss";
    
    /**
     * 将日期转换为指定格式的字符串
     */
    public static String format(Date date, String format) {
        if (date == null) {
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date);
    }
    
    /**
     * 将日期转换为yyyy-MM-dd格式的字符串
     */
    public static String formatDate(Date date) {
        return format(date, DATE_FORMAT);
    }
    
    /**
     * 将日期转换为yyyy-MM-dd HH:mm:ss格式的字符串
     */
    public static String formatDateTime(Date date) {
        return format(date, DATETIME_FORMAT);
    }
    
    /**
     * 将字符串转换为日期
     */
    public static Date parse(String dateStr, String format) throws ParseException {
        if (dateStr == null || dateStr.isEmpty()) {
            return null;
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.parse(dateStr);
    }
    
    /**
     * 将yyyy-MM-dd格式的字符串转换为日期
     */
    public static Date parseDate(String dateStr) throws ParseException {
        return parse(dateStr, DATE_FORMAT);
    }
    
    /**
     * 将yyyy-MM-dd HH:mm:ss格式的字符串转换为日期
     */
    public static Date parseDateTime(String dateStr) throws ParseException {
        return parse(dateStr, DATETIME_FORMAT);
    }
}